import asyncio


async def a():
    print('a start')
    await b()
    print('a end')
    return


async def b():
    print('b start')
    await asyncio.sleep(1)
    print('b end')


def run(coroutine):
    try:
        coroutine.send(None)
    except StopIteration as e:
        return e.value


if __name__ == '__main__':
    # asyncio.run(a())
    run(a())
